51单片机之算术运算指令ADDC、SUBB等 |
您所在的位置:网站首页 › 单片机r0 r1 › 51单片机之算术运算指令ADDC、SUBB等 |
文章目录
前言一、加法指令 ADDADD A, XXX
二、带进位加法指令 ADDCADDC A, XXX
三、带借位减法指令 SUBBSUBB A, XXX
四、乘除法指令MUL ABDIV AB
五、十进制调整指令DA A
六、加一减一指令INC XXXDEC XXX
前言
1.算术指令包括加、减、乘、除基本四则运算 2.在逻辑运算单元(ALU)中能进行加、减、乘、除、加1,减1,BCD数转十进制调整等 一、加法指令 ADDADD英文全称:Addition ADD A, XXX目的:将第二操作数(XXX)与第一操作数(A)的内容进行相加,得到的结果存放在累加器A中; 第二操作数:寄存器Rn、直接地址direct、间接地址@Ri、立即数#data。 助记符功能对标志位影响字节数周期数POVACCYADD A, Rn(A) + (Rn) -> A√√√√11ADD A, @Ri(A) + ((Ri)) -> A√√√√11ADD A, direct(A) + (direct) -> A√√√√21ADD A, #data(A) + #data -> A√√√√21 上述的指令会影响标志位P、OV、AC、CY位;当和的第3位有进位则将AC位(辅助进位标志)置1;当和的第7位有进位则将CY位(进位标志)置1;由和的奇偶个1确定P置1还是清零,奇数个1置1,偶数个1清零;溢出标记位OV只有带符号数运算时才有用;对于带符号数来说,溢出标记位OV取值为 其和的第6位和第7位进行异或逻辑运算的结果OV = 1表示两个正数求和结果为负数的错误结果 或 两个负数求和结果为正数的错误结果;例 两个正数带符号数 0100 0011 与 0100 0001 两个负数带符号数 1000 0011 与 1000 0001 0100 0011 + 0100 0001 = 1000 0100 其结果是一个负数;1000 0011 + 1000 0001 = 0000 0100 其结果是一个正数;需要OV来表示结果溢出出错。例 累加器A的内容为 043H,R1的内容为10H,地址10H的内容为20H MOV A, R1:将A中内容与R1中的内容进行相加存放在A中,(A) + (R1) = 53H -> A,P = 0,AC = 0,CY = 0;MOV A, @R1:将A中内容与R1中的所指向地址空间的内容进行相加存放在A中,(A) + ((R1)) = 63H -> A,P = 0,AC = 0,CY = 0;MOV A, 10H:将A中内容与10H中的内容进行相加存放在A中,(A) + (10H) = 63H -> A,P = 0,AC = 0,CY = 0;MOV A, #3EH:将A中内容与10H中的内容进行相加存放在A中,(A) + 33H = 80H -> A,P = 1,AC = 1,CY = 0。 二、带进位加法指令 ADDCADDC英文全称:Add with Carry ADDC A, XXX目的:将第二操作数(XXX)、第一操作数(A)的内容和进位CY三个数进行相加,得到的结果存放在累加器A中; 第二操作数:寄存器Rn、直接地址direct、间接地址@Ri、立即数#data; 助记符功能对标志位影响字节数周期数POVACCYADDC A, Rn(A) + (Rn) + CY -> A√√√√11ADDC A, @Ri(A) + ((Ri)) + CY -> A√√√√11ADDC A, direct(A) + (direct) + CY -> A√√√√21ADDC A, #data(A) + #data + CY -> A√√√√21例 累加器A的内容为 0C3H,R0的内容为0AAH,R1的内容为10H,10H的内容为0AAH,(CY) = 1; ADDC A, R0:将A中内容、R0中的内容和CY三个数进行相加存放在A中,CY = 1,OV = 1,AC = 0;ADDC A, @R1:将A中内容、R1所指向地址空间的内容和CY三个数进行相加存放在A中,CY = 1,OV = 1,AC = 0;ADDC A, 10H:将A中内容、10H中的内容和CY三个数进行相加存放在A中,CY = 1,OV = 1,AC = 0;ADDC A, #0AAH:将A中内容、立即数#0AAH和CY三个数进行相加存放在A中,CY = 1,OV = 1,AC = 0。 三、带借位减法指令 SUBBSUBB英文全称:Subtract with Borrow SUBB A, XXX目的:将第一操作数(A)的内容减第二操作数(XXX)和进位CY三个数,得到的结果存放在累加器A中; 第二操作数:寄存器Rn、直接地址direct、间接地址@Ri、立即数#data; 助记符功能对标志位影响字节数周期数POVACCYSUBB A, Rn(A) - (Rn) - CY -> A√√√√11SUBB A, @Ri(A) - ((Ri)) - CY -> A√√√√11SUBB A, direct(A) - (direct) - CY -> A√√√√21SUBB A, #data(A) - #data - CY -> A√√√√21例 累加器A的内容为 0C9H,R2的内容54H,R1 = 10H,10H = 54H,(CY) = 1; SUBB A, R2;表示将累加器A中的内容减R2的内容再减CY,(A) - (R2) - (CY) = 74H -> A,CY = 0,AC = 0,OV = 1;SUBB A, @R1;表示将累加器A中的内容减R1所指向地址空间的内容再减CY,(A) - ((R1)) - (CY) = 74H -> A,CY = 0,AC = 0,OV = 1;SUBB A, 10H;表示将累加器A中的内容减10H的内容再减CY,(A) - (10H) - (CY) = 74H -> A,CY = 0,AC = 0,OV = 1;SUBB A, 54H;表示将累加器A中的内容减立即数54H再减CY,(A) - 54H - (CY) = 74H -> A,CY = 0,AC = 0,OV = 1。 四、乘除法指令MUL英文全称:Multiply DIV英文全称:Divide MUL AB目的:将累加器A和寄存器B中两个8位无符号数乘数,所得16位积的低8位存放在A中,高8位存放在B中,乘积大于0FFH,则将OV置1,否则清零,CY总是被清零 助记符功能对标志位影响字节数周期数POVACCYDIV AB(A) * (B) -> AB√√×014例 A中的内容04EH,B中的内容5DH MUL AB:表示将AB两个内容相乘,高8位为1CH存放在B中,低8位为56H存放在A中,OV = 1。 DIV AB目的:进行A除以B的运算,整数存放在A中,余数存放在B中,CY、OV均被清零,若(B) = 0则结果无法确定 助记符功能对标志位影响字节数周期数POVACCYDIV AB(A) / (B) 的商 -> A,(A) / (B) 的余数 -> B√√×014A的内容为BFH,B中的内容为32H DIV AB:结果(A) = 32H,(B) = 29H,标志位CY = 0,OV = 0; 五、十进制调整指令DA英文全称:Decimal Adjust DA A目的:将累加器中的数进行十进制调整 助记符功能对标志位影响字节数周期数POVACCYDA A调整累加器内容为BCD码√×√√11 BCD码:二进码十进数,用4位二进制数来表示1位十进制数中的0~9这10个数码; 例 19H表示十进制的19,而非表示二进制的0001 1001; 当AC > 1或A0123 > 9则令 A + 06H -> A,就完成转化BCD码;十进制大于9时,会进位,用二进制表示十进制数就需要而额外的加06H来实现十进制数上的进位 如十进制数09H加1会进位10H,但结果为0AH,再加06H变为10H。 当CY > 1或A4567 > 9则令 A + 60H -> A,就完成转化BCD码;如果都满足3、4条件则加66H来完成BCD转化; DA常用于 ADD、ADDC指令后。 六、加一减一指令INC英文全称:Increment DEC英文全称:Decrement INC XXX目的:将指定的单元内容加1 目的操作数:累加器A、寄存器Rn、直接地址direct、间接地址@Ri、16位寄存器DPTR 助记符功能对标志位影响字节数周期数POVACCYINC A(A) +1 -> A√×××11INC Rn(Rn) + 1 -> Rn××××11INC direct(direct) + 1 -> direct××××21INC @Ri((Ri)) + 1 -> (Ri)××××11INC DPTR(DPTR) + 1 -> DPTR××××12 DEC XXX目的:将指定的单元内容加1 目的操作数:累加器A、寄存器Rn、直接地址direct、间接地址@Ri、16位寄存器DPTR 助记符功能对标志位影响字节数周期数POVACCYDEC A(A) - 1 -> A√×××11DEC Rn(Rn) - 1 -> Rn××××11DEC direct(direct) - 1 -> direct××××21DEC @Ri((Ri)) - 1 -> (Ri)××××1151单片机之系统指令 51单片机之逻辑运算指令ANL、ORL、XRL等 51单片机之数据转移指令MOV、MOVX、MOVC等 51单片机之位操作指令SETB、CPL等 51单片机之控制转移指令SJMP、LJMP等 由本人水平有限,文章难免有错误,望告知 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |